package com.mingyuan.library.domain.common.event;

import io.vavr.collection.List;

/**
 * 领域事件
 * @author yangzk
 * @version 1.0.0
 * @date 2024/1/5 14:21
 **/
public interface DomainEvents {

    /**
     * 发布事件
     * @author yangzk
     * @param event 事件信息
     * @date 2024/1/5 14:22
     **/
    void publish(DomainEvent event);
    /**
     * 默认发布事件
     * @author yangzk
     * @param events 事件列表
     * @date 2024/1/5 14:22
     **/
    default void publish(List<DomainEvent> events) {
        events.forEach(this::publish);
    }
}
